Text resizing within an embedded image

ABSTRACT

A computer receives user preferences. The computer receives a document, wherein the document includes an image. The computer determines that the image contains embedded text. The computer determines that the embedded text does not satisfy the received user preferences. The computer modifies the embedded text to satisfy user preferences.

FIELD OF THE INVENTION

The present invention relates generally to image editing, and moreparticularly to an embedded text editing system that resizes the textwithin an embedded image, according to user preferences, while leavingthe image intact.

BACKGROUND

Text and textual information proliferates everyday life. Text presentedin spreadsheets and documents shared amongst coworkers and in images maybe incomprehensible for several reasons. For example, text in an imagemay be too small for observation putting a strain on the reader's eyes.Currently, there are programs such as Adobe Photoshop® (Adobe Photoshopis a registered trademark of Adobe Systems Incorporated) that enablesusers to select a region around text embedded in an image and resize theselected region. Users may also increase the size of the entire image toadjust the text to a readable size. However, enlarging the entire imageto make the text readable can result in the image being enlarged to thepoint that the edges are no longer viewable.

SUMMARY

Embodiments of the present invention provide a system, method, andprogram product for modifying text embedded within an image. A computerreceives user preferences. The computer receives a document, wherein thedocument includes an image. The computer determines that the imagecontains embedded text. The computer determines that the embedded textdoes not satisfy the received user preferences. The computer modifiesthe embedded text to satisfy user preferences.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating an embedded textediting system in accordance with an embodiment of the presentinvention.

FIGS. 2, 3 and 4 are flowcharts depicting the operational steps of thetext editing program of FIG. 1 in analyzing and resizing text based onuser preferences, in accordance with an embodiment of the presentinvention.

FIG. 5 is an illustration depicting the resizing of text within animage, in accordance with an embodiment of the present invention.

FIG. 6 is a block diagram depicting the hardware components of the textenhancement system of FIG. 1, in accordance with an embodiment of theinvention.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.), or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system”.Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer-readablemedium(s) having computer-readable program code/instructions embodiedthereon.

Any combination of one or more computer-readable medium(s) may beutilized. The computer-readable medium may be computer-readable signalmedium or a computer-readable storage medium. A computer-readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer-readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer-readable storagemedium may be any tangible medium that can contain or store a programfor use by, or in connection with an instruction execution system,apparatus or device.

A computer-readable signal medium may include a propagated data signalwith computer-readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer-readable signal medium may be any computer-readable medium thatis not a computer-readable storage medium that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer-readable medium may be transmittedusing any appropriate medium including, but not limited to, wireless,optical fiber cable, RF, etc., or any suitable combination of theforegoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as “C” programming language or similarprogramming languages. The program code may execute entirely on a user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computer,or entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

The computer program instructions may also be stored in acomputer-readable medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus, or other devices to produce acomputer-implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Embodiments of the present invention will now be described in detailwith reference to the accompanying Figures.

FIG. 1 illustrates text editing system 100, in accordance with anembodiment of the invention. In an exemplary embodiment, text editingsystem 100 includes computing device 110 and user computing device 130,all interconnected via network 120.

In an exemplary embodiment, network 120 is the Internet, representing aworldwide collection of networks and gateways to support communicationsbetween devices connected to the Internet. Network 120 may include, forexample, wired, wireless, or fiber optic connections. In otherembodiments, network 120 may be implemented as an intranet, a local areanetwork (LAN), or a wide area network (WAN). In general, network 120 canbe any combination of connections and protocols that will supportcommunications between computing device 110 and user computing device130.

In the exemplary embodiment, computing device 110 may be a desktopcomputer, a notebook, a laptop computer, a tablet computer, a handhelddevice, a smart phone, a thin client, or any other computing device orcomputing system capable of receiving and sending data to and from othercomputing devices, such as user computing device 130. Computing device110 may be comprised of a cluster of plurality of computing devicesworking together or working separately. Computing device 110 isdescribed in more detail with reference to FIG. 6.

In the exemplary embodiment, user computing device 130 may be a laptopcomputer, tablet computer, notebook computer, personal computer (PC), adesktop computer, a personal digital assistant (PDA), a smart phone, orany programmable electronic device capable of communicating withcomputing device 110 via network 120. In the exemplary embodiment, usercomputing device 130 includes text editing program 134 and userinterface 132. User computing device 130 may include internal andexternal hardware components, as depicted and described in furtherdetail with respect to FIG. 6.

In the exemplary embodiment, user interface 132 includes components usedto receive input from user of user computing device 130 and transmit theinput to text editing program 134. User interface 132 uses a combinationof technologies, such as device drivers, to provide a platform to enableusers to interact with text editing program 134. In the exemplaryembodiment, user interface 132 receives input such as textual inputreceived from a physical input device such as a keyboard, via a devicedriver that corresponds to the physical input device.

Text editing program 134 includes user preferences 136. In the exemplaryembodiment, text editing program 134 is software capable of receivingdata, such as text documents and web pages from network 120. Textediting program 134 is also capable of transmitting data to othercomputing devices, such as computing device 110 via network 120.

In the exemplary embodiment, user preferences 136 is data input by auser of user computing device 130 via user interface 132 that defineswhen text editing program 134 should edit text or embedded text presentin data, such as a text document, presentation, or web page. In otherembodiments, user preferences 136 may be received from another computingdevice, such as computing device 110, via network 120. In the exemplaryembodiment, user preferences 136 includes data which defines a preferredminimum text size by way of defining a range of text size values wheretext editing program 134 is instructed to modify the size of the text toa preferred text size and data which defines one or more preferred fontor text style preference by way of defining font or text style optionswhere text editing program 134 is instructed to modify the font and/ortext style of the text present. User preferences 136 are discussed infurther detail with regard to FIG. 2.

FIG. 2 is a flowchart illustrating the operational steps of text editingprogram 134 in modifying text in an image, according to userpreferences, in accordance with an embodiment of the invention. In theexemplary embodiment text editing program 134 receives a document thatcontains an image from computing device 110 via network 120. In theexemplary embodiment, the term image refers to a depiction that isstatic, such as a screenshot, where a portion of the image or itemsdepicted within the image cannot be individually modified withoutadditional manipulative steps; however, the image as a whole may bemodified. For example, a screenshot of a desktop pasted into a wordprocessor may be readily modified by the word processor; however, anindividual icon depicted within the screenshot may not be readilymodified by the word processor, such as re-sized, without modifying thescreenshot as a whole. In other embodiments, the document may containmultiple images. In addition, in other embodiments, the document may beuploaded to computing device 130 from a data storage device.

Text editing program 134 then receives input, i.e., user preferences136, from the user of computing device 130 (block 202). In the exemplaryembodiment, user preferences 136 includes a preferred minimum text sizeand a preferred font style, with the preferred font style including oneor more of a preferred text style (i.e., Times New Roman text style), apreferred text color, a preferred sharpness of the text and a preferrededge detail. For example, if the user of computing device 130 preferstext to have a minimum text size of 12, the user can input thisinformation into the text editing program 134 via user interface 132.This input instructs text editing program 134 to modify any textencountered below a 12 point text size to a 12 point text size. In otherembodiments, the user of computing device 130 may input a preferred textsize rather than a preferred minimum text size. In this otherembodiment, the input instructs text editing program 134 to modify anytext encountered that is not at least 12 point text size to a 12 pointtext size.

Text editing program 134 then determines if the image in the receiveddocument contains text (decision block 204). In the exemplaryembodiment, text editing program 134 detects text within the image byusing, for example, optical character recognition (OCR) software thatscans images for handwritten, typewritten, or printed text and isolatesthe text for editing. For example, if user computing device 130 receivesa document containing an image, text editing program 134 analyzes theimage using OCR and determines whether there is text contained in theimage. If text editing program determines that the image in the receiveddocument does not contain any text then there is no text to modify andtherefore, text editing program 134 does not perform any modifications(decision block 204, “NO” branch).

If text editing program 134 determines that the image in the receiveddocument does contain text (decision block 204, “YES” branch), textediting program 134 then determines if the text in the image satisfiesuser preferences 136 (decision block 206). In the exemplary embodimenttext editing program 134 satisfies user preferences 136 if the text inthe image does not fall within the defined range of text size valueswhere text editing program 134 is instructed to modify the text size andif the font or style of the text does not match any of the defined fontor style options, where text editing program 134 is instructed to modifythe font or style of the text. For example, if the text in the image hasa 10 point text size and user preferences 136 instructs text editingprogram 134 to modify any text that is below a 12 point text size to apreferred text size, then the text does not satisfy user preferences. Iftext editing program 134 determines that the text in the image doessatisfy user preferences 136 (decision block 206, “YES” branch) then thetext satisfies the preferences desired by the user of computing device130 and therefore text editing program 134 does not modify the text sizeor font style of the text.

If text editing program 134 determines the text in the image does notsatisfy user preferences 136 (decision block 206, “NO” branch), textediting program 134 determines if the text overlays the image (decisionblock 308).

In the exemplary embodiment, text editing program 134 determines if thetext overlays the image by determining if the text is a separatelyselectable entity from the image. For example, if text is contained in atext box which is separately selectable from the image, the text isoverlaid on top of the image. However, if the text is not separatelyselectable from the image and is therefore embedded within the image,the text is static (decision block 308, “NO” branch).

If text editing program 134 determines that the text overlays the image(decision block 308, “YES” branch), text editing program 134 modifiesthe text so that the text satisfies user preferences 136 (block 310).Referring to the example above, if the encountered text in the image is10 point text and text editing program 134 determines that the textoverlays the image, text editing program 134 re-sizes the 10 point textto the preferred minimum 12 point text size described in userpreferences 136.

If text editing program 134 determines the text does not overlay theimage (decision block 308, “NO” branch), text editing program 134determines the text is static. For example, if text editing program 134determines that the image and text are one entity, i.e. the text is nota separately selectable entity from the image, text editing program 134determines that the text is embedded within the image and thereforestatic text. Static text is text that is not a separate selectableentity but rather is fully embedded within the image and thereforecannot be modified independently from the image. If text editing program134 determines that the text does not overlay the image (decision block308, “NO” branch), text editing program 134 extracts the text from theimage (block 312). In the exemplary embodiment, in order to prevent theimage from corruption during the text extraction, photo editing softwaresuch as Adobe Photoshop® (Adobe Photoshop is a registered trademark ofAdobe Systems Incorporated) is utilized to fill in the holes in theimage left behind by the extracted text by way of photo correctionprinciples (block 314). Text editing program 134 then modifies the textto satisfy user preferences 136 in the manner described above andoverlays the text back in the original position atop the image (block316). For example, with regard to the aforementioned example, if textediting program 134 determined the encountered 10 point text is embeddedwithin the image and therefore static, text editing program 134 extractsthe text, utilizes photo correction software, modifies the text to theminimum 12 point text size and overlays the modified text back in theoriginal position atop the image.

Text editing program 134 then determines if the text is conflicting(decision block 418). In the exemplary embodiment, conflicting textrefers to text which no longer fits within a graphic present in theimage after the text is re-sized or text which no longer fits in alegible manner within the text box. For example, if an image contains agraphic, such as a pie graph or picture, which in turn contains embeddedtext which does not satisfy user preferences 136, after text editingprogram 134 extracts, re-sizes the text to satisfy user preferences 136and overlays the text atop the graphic, as described above, if there-sized text does not fit within the boundaries of the graphic, thenthe text is conflicting text. In addition, text may also be conflictingif text re-sized by text editing program 134 in order to satisfy userpreferences 136, no longer fits within the text box in an easily legiblemanner. For example, if a single word of the re-sized text does not fitwithin the text box without being split or hyphenated, then the text isalso conflicting.

If text editing program 134 determines the image contains conflictingtext (decision block 418, “YES” branch), text editing program 134presents the user with the option to move the text outside of the imageand add arrows to point to the text's original location or to add ascroll bar to the text box containing the text so that a user can viewall the text contained within the text box (block 420). In the exemplaryembodiment, the user of computing device 130 can input the desiredoption into text editing program 134 via user interface 132.

If text editing program 134 determines the image does not containconflicting text (decision block 418, “NO” branch), then text editingprogram 134 does not perform any modifications.

The foregoing description of various embodiments of the presentinvention has been presented for purposes of illustration anddescription. It is not intended to be exhaustive nor to limit theinvention to the precise form disclosed. Many modifications andvariations are possible. Such modifications and variations that may beapparent to a person skilled in the art of the invention are intended tobe included within the scope of the invention as defined by theaccompanying claims.

FIG. 5 illustrates the modification of static text within image 502 bytext editing program 134 to satisfy user preferences 136. In theexemplary embodiment, since the text in image 502 is not a separatelyselectable entity from image 502, the text is static text. Therefore,text editing program 134 modifies the text to satisfy user preferences136 by extracting the text, modifying the text to satisfy userpreferences 136 (increasing the size of the text), and overlaying thetext atop the image in the original position of the text, as depicted byimage 504. In addition, as depicted in image 504, when the text isoverlaid, the text is contained in separately selectable text boxes.

FIG. 6 depicts a block diagram of components of computing device 110 anduser computing device 130 in accordance with an illustrative embodimentof the present invention. It should be appreciated that FIG. 6 providesonly an illustration of one implementation and does not imply anylimitations with regard to the environments in which differenceembodiments may be implemented. Many modifications to the depictedenvironment may be made.

Computing device 110 and user computing device 130 includecommunications fabric 602, provides communications between computerprocessor(s) 604, memory 606, persistent storage 608, communicationsunit 612, and input/output (I/O) interface(s) 614. Communications fabric602 can be implemented with any architecture designed for passing dataand/or control information between processors (such as microprocessors,communications and network processors, etc.), system memory, peripheraldevices, and any other hardware components within a system. For example,communications fabric 602 can be implemented with one or more buses.

Memory 606 and persistent storage 608 are computer-readable storagemedia. In this embodiment, memory 606 includes random access memory(RAM) 616 and cache memory 618. In general, memory 606 can include anysuitable volatile or non-volatile computer-readable storage memory.

The programs text editing program 134, user interface 132 and userpreferences 136 in user computing device 130 are stored in persistentstorage 608 for execution by one or more of the respective computerprocessors 604 via one or more memories of memory 606. In thisembodiment, persistent storage 608 includes a magnetic hard disk drive.Alternatively, or in addition to a magnetic hard disk drive, persistentstorage 608 can include a solid state hard drive, a semiconductorstorage device, read-only memory (ROM), erasable programmable read-onlymemory (EPROM), flash memory, or any other computer-readable storagemedia that is capable of storing program instructions or digitalinformation.

The media used by persistent storage 608 may also be removable. Forexample, a removable hard drive may be used for persistent memory 608.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer-readable storage medium that is also part of persistent storage608.

Communications unit 612, in these examples, provides for communicationswith other data processing systems of devices. In these examples,communications unit 612 includes one or more network interface cards.Communications unit 612 may provide communications through the use ofeither or both physical and wireless communications links. The programtext editing program 134, user interface 132, and user preferences 136in user computing device 130 may be downloaded to persistent storage 608through communications unity 612.

I/O interface(s) 614 allows for input and output of data with otherdevices that may be connected to computing device 110 and user computingdevice 130. For example, I/O interface 614 may provide a connection toexternal devices 620 such as a keyboard, keypad, a touch screen, and/ormore other suitable input device. External devices 620 may also includeportable computer-readable storage media such as, for example, thumbdrives, portable optical or magnetic disks, and memory cards. Softwareand data used to practice embodiments of the present invention, e.g.,the programs text editing program 134, user interface 132 and userpreferences 136 in user computing device 130 can be stored on suchportable computer-readable storage media and can be loaded ontopersistent storage 608 via I/O interface(s) 614. I/O interface(s) 614can also connect to a display 622.

Display 622 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality and operation of possible implementations ofsystems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should be also notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

What is claimed is:
 1. A method for modifying text embedded within animage, comprising the steps of: a computer receiving user preferences;the computer receiving a document, wherein the document includes animage; the computer determining that the image contains embedded text;the computer determining that the embedded text does not satisfy theuser preferences; and the computer modifying the embedded text tosatisfy the user preferences.
 2. The method of claim 1, wherein userpreferences include one or more of a preferred text size and a preferredfont style, and wherein a preferred font style includes one or more of apreferred text color, a preferred text style, a preferred sharpness oftext, and a preferred edge detail.
 3. The method of claim 1, wherein thestep of the computer determining that the embedded text does not satisfythe user preferences comprises the computer comparing the userpreferences with the embedded text.
 4. The method of claim 1, whereinthe step of the computer modifying the embedded text to satisfy the userpreferences further comprises: the computer extracting the embedded textfrom an original position; the computer modifying the embedded text thatis extracted in order to satisfy the user preferences; and the computeroverlaying the embedded text that is extracted and modified atop theimage.
 5. The method of claim 4, further comprising the step of thecomputer utilizing photo correction software to fill in one or moreportions of the image that have been corrupted as a result of theextraction of the embedded text.
 6. The method of claim 4, wherein thecomputer overlays the embedded text that is extracted and modified atopthe image within a scrollable text box.
 7. The method of claim 4,wherein the computer overlays the embedded text that is extracted andmodified atop the image within a text box while utilizing indicators toidentify the original position of the text.
 8. A computer programproduct for modifying text embedded within an image, the computerprogram product comprising: one or more computer-readable storagedevices and program instructions stored on at least one of the one ormore tangible storage devices, the program instructions comprising:program instructions to receive user preferences; program instructionsto receive a document, wherein the document includes an image; programinstructions to determine that the image contains embedded text; programinstructions to determine that the embedded text does not satisfy theuser preferences; and program instructions to modify the embedded textto satisfy the user preferences.
 9. The computer program product ofclaim 8, wherein user preferences include one or more of a preferredtext size and a preferred font style, and wherein font style includesone or more of text color, text style, sharpness of text and edgedetail.
 10. The computer program product of claim 8, wherein the programinstructions to determine that the embedded text does not satisfy theuser preferences further comprises program instructions to compare theuser preferences with the embedded text.
 11. The computer programproduct of claim 8, wherein the program instructions to modify theembedded text to satisfy the user preferences further comprises: programinstructions to extract the embedded text from an original position;program instructions to modify the extracted text that is extracted inorder to satisfy the user preferences; and program instructions tooverlay the embedded text that is extracted and modified atop the image.12. The computer program product of claim 11, further comprising programinstructions to utilize photo correction software to fill in one or moreportions of the image that have been corrupted as a result of theextraction of the embedded text.
 13. The computer program product ofclaim 11, further comprising program instructions to overlay theembedded text that is extracted and modified atop the image within ascrollable text box.
 14. The computer program product of claim 11,further comprising program instructions to overlay the embedded textthat is extracted and modified atop the image within a text box whileutilizing indicators to identify the original position of the text. 15.A computer system for modifying text embedded within an image, thecomputer system comprising: one or more processors, one or morecomputer-readable memories, one or more computer-readable tangiblestorage devices, and program instructions stored on at least one of theone or more storage devices for execution by at least one of the one ormore processors via at least one of the one or more memories, theprogram instructions comprising: program instructions to receive userpreferences; program instructions to receive a document, wherein thedocument includes an image; program instructions to determine that theimage contains embedded text; program instructions to determine that theembedded text does not satisfy the user preferences; and programinstructions to modify the embedded text to satisfy the userpreferences.
 16. The computer system of claim 15, wherein userpreferences include one or more of a preferred text size and a preferredfont style, and wherein font style includes one or more of text color,text style, sharpness of text and edge detail.
 17. The computer systemof claim 15, wherein the program instructions to determine that the textdoes not satisfy the user preferences further comprises of programinstructions to compare the user preferences with the embedded text. 18.The computer system of claim 15, wherein program instructions to modifythe embedded text to satisfy the user preferences further comprises:program instructions to extract the embedded text from an originalposition; program instructions to modify the embedded text that isextracted in order to satisfy the user preferences; and programinstructions to overlay the embedded text that is extracted and modifiedatop the image.
 19. The computer system of claim 18, further comprisingprogram instructions to overlay the embedded text that is extracted andmodified atop the image within a scrollable text box.
 20. The computersystem of claim 18, further comprising program instructions to overlaythe embedded text that is extracted and modified atop the image within atext box while utilizing indicators to identify the original position ofthe text.